910. Среднее арифметическое положительных
Задана
последовательность вещественных чисел. Найти среднее арифметическое
положительных чисел.
Вход. В первой строке задано количество чисел n (0 < n ≤ 100). В следующей строке заданы n действительных чисел, значения которых не превосходят по модулю
100.
Выход. Вывести среднее
арифметическое положительных чисел с 2 десятичными знаками. В случае отсутствия
положительных чисел вывести сообщение “Not Found” (без кавычек).
Пример
входа 1 |
Пример
выхода 1 |
3 5.2 -2 4 |
4.60 |
|
|
Пример
входа 2 |
Пример
выхода 2 |
3 -5.2 -2 -4 |
Not Found |
циклы
В переменной s подсчитаем сумму положительных чисел,
в cnt – их количество. Ответом будет
значение s / cnt.
Реализация алгоритма
Читаем значение n.
s = cnt = 0;
scanf("%d",&n);
Последовательно читаем n входных чисел.
for(i = 0; i < n; i++)
{
scanf("%lf",&val);
Если число val положительное, то прибавляем его к сумме s и увеличиваем количество положительных чисел cnt на 1.
if (val >
0)
{
s += val;
cnt++;
}
}
В зависимости от
количества положительных чисел cnt
выводим ответ:
if (cnt == 0) printf("Not Found\n");
else printf("%.2lf\n",s
/ cnt);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
double s = 0;
int cnt = 0;
for(int i = 0; i < n; i++)
{
double val = con.nextDouble();
if (val > 0)
{
s += val;
cnt++;
}
}
if (cnt == 0) System.out.println("Not Found");
else
System.out.printf("%.2f\n", s / cnt);
con.close();
}
}
Python реализация
n = int(input())
lst = list(map(float, input().split()))
l = []
for i in range(n):
if lst[i] > 0: l.append(lst[i])
if len(l) > 0:
average = float(sum(l) / len(l))
print('%.2f' % average)
else:
print('Not Found')